var의 문제점

변수 선언에 사용되는 var에 문제점에 대해 설명드리겠습니다.

var 키워드에는 이러한 특징이 있습니다.

  1. 변수 선언의 중복 허용
  2. 함수 레벨 스코프
  3. 변수 호이스팅

변수 선언의 중복으로 의도치않게 같은 이름의 변수를 선언하여 재할당 되는 부작용이 생길 수 있습니다.

대부분 프로그래밍 언어의 변수는 모든 코드 블럭(if , for , while , try/catch)이 지역 스코프를 만듭니다.

이를 블록 레벨 스코프 라고합니다.

하지만 var 키워드로 선언된 변수는 함수의 코드블록만을 지역스코프로 인정합니다 이를 함수 레벨 스코프라고 합니다

이 특성때문에 안에있는 코드블럭내에서 의도치않는 값의 변경이 일어날 수 있습니다

var로 선언한 변수는 선언과 동시에 undefined로 초기화 되며 런타임때 스코프에 등록 되기때문에 실제 값이 할당 되지 않더라도 undefined를 갖고있다.
이때문에 의도치않은 값을 낼일이 있을 수 도있다.